package bookstore_mall.service;

import bookstore_mall.common.PageVO;
import bookstore_mall.domain.BookCategory;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import bookstore_mall.domain.dto.category.updateCategoryRequest;

/**
 * @author Administrator
 * @description 针对表【book_categories】的数据库操作Service
 * @createDate 2025-02-05 10:59:10
 */
public interface BookCategoriesService extends IService<BookCategory> {

    /**
     * 分页查询图书分类
     *
     * @param page     页码
     * @param pageSize 每页大小
     * @param name     分类名称（可选）
     * @return 分页结果
     */
    PageVO<BookCategory> findByPage(int page, int pageSize, String name);

    /**
     * 根据分类ID查询
     *
     * @param categoryId 分类ID
     * @return 分类信息
     */
    BookCategory findByCategoryId(String categoryId);

    /**
     * 根据父分类ID查询子分类
     *
     * @param parentId 父分类ID
     * @return 子分类列表
     */
    IPage<BookCategory> findByParentId(Integer parentId, int page, int pageSize);

    /**
     * 创建新分类
     *
     * @param category 分类信息
     * @return 创建后的分类
     */
    BookCategory create(BookCategory category);

    /**
     * 更新分类
     *
     * @param category 分类信息
     * @return 更新后的分类
     */
    boolean updateCategory(updateCategoryRequest category, String categoryId);

    /**
     * 删除分类
     *
     * @param categoryId 分类ID
     * @return 是否删除成功
     */
    boolean deleteCategory(String categoryId);
}
